import com.sun.jdi.PathSearchingVirtualMachine;

/**
 * Created with IntelliJ IDEA
 * Description
 * User:user
 * Date:2021-10-14
 * Time:14:36
 */
public class TestDemo {
  /*  //方法的重载
    //方法名称相同
    //方法的参数不同：方法的参数不同（个数，类型）
    //方法的返回值不做要求
    //区别是生成方法的签名不同
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(add(a,b));
        System.out.println(add(1.2,2.3));
        System.out.println(add(1,1.2));
        System.out.println(add(1.2,1));
        System.out.println(add(1,2,3));

    }

    public static int  add(int x,int y) {
        return x + y;
    }
    public static int  add(int x,int y,int d) {
        return x + y + d;
    }
    public static double  add(double x,double y) {
        return x + y;
    }
    public static double  add(int x,double y) {
        return x + y;
    }
    public static double  add(double x,int y) {
        return x + y;
    }
*/



/*

    public  static  void swap(int x,int y){
        int tmp = x;
        x = y;
        y = tmp;
    }
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a+" "+b);
        */
		/*int tmp = a;
        a = b;
        b = tmp;*//*

        swap(a,b);//不会发生交换操作原因只复制了一份副本，实际的地址没有发生改变
        //形参的改变并不能影响实参的改变，按值传递
        //后期&
        //不一定所有的方法都有返回值
        //学习方法一定要注意匹配原则：方法的参数个数，类型 返回值类型
        System.out.println(a+" "+b);
    }
*/



   /* //求n的阶乘
    public static int fac(int n) {
        int ret = 1;
        for (int j = 1; j <= n ; j++) {
            ret *= j;
        }
       return ret;
    }
    //求n的阶乘的和
    public static int facSum(int n) {
        int sum = 0;
        for (int i = 1; i <= n ; i++) {
          sum +=  fac(i);
        }
        return sum;

    }
    public static void main(String[] args) {
        int sum  = facSum(5);
        System.out.println(sum);
        System.out.println(fac(3));
    }
*/


  /*  //1!+2!+3!+4!+5!
    public static int facSum(int n) {
        int sum = 0;
        for (int i = 1; i <= n ; i++) {
            int ret = 1;
            for (int j = 1; j <= i ; j++) {
                ret *= j;
            }
            sum += ret;
        }
        return sum;

    }
    public static void main(String[] args) {
       int sum  = facSum(5);
        System.out.println(sum);
    }

*/



 /*   public static 返回值 方法名称（形式参数）{
        方法体
    }*/
    //此处代表的是功能，进行的输入输出一般是不需要修改的
    public static int  Add(int x, int y) {
        return x + y;
    }
    public static void main1(String[] args) {
        int a = 10;
        int b = 20;
        //方法的调用，用户来调用的
        //1.参数的个数要匹配
        //2.每个参数的类型要匹配
        //3.实际参数 形式参数
        //实参和形参的区别
        //所有的函数都会在栈上运行，栈先进后出
        //当方法内部遇到return之后，代表整个方法将结束了t
        int ret = Add(a,b);
        System.out.println(ret);
        int ret2  = Add(1,2);
        System.out.println(Add(3,4));

    }
}
